#pragma once

#include <vector>
#include <string>

class HashedString
{
public:
	typedef std::vector<HashedString> Vector_t;

	HashedString();
	HashedString( const char* string );
	HashedString( std::string string );
	HashedString( const HashedString& string );
	const unsigned int getIdentifier() const;
	const std::string& getString() const;
	bool operator< ( HashedString const& o ) const;
	bool operator== ( HashedString const& o ) const;
	bool operator!= ( HashedString const& o ) const;
	HashedString& HashedString::operator= ( const HashedString& string );
	static void* HashName( char const* string );
private:
	void* m_identifier;
	std::string m_identifierString;
};